home *** CD-ROM | disk | FTP | other *** search
- /*
- File: FrFaItr.cpp
-
- Contains: Implementation of class ODFrameFacetIterator
-
- Owned by: Joshua Susser
-
- Copyright: © 1993 - 1995 by Apple Computer, Inc., all rights reserved.
-
- Change History (most recent first):
-
- <6> 8/7/95 JBS 1260631added ASSERT for frame in Init
- <5> 8/3/95 RR #1257260: Collapse B classes. Remove
- somInit methods. Don't call IsInitialized
- or SubclassResponsibility
- <4> 5/26/95 RR #1251403: Multithreading naming support
- <3> 5/2/95 JBS 1244569 Layout iterators need SOM exception
- handling; 1243361 FrameFacetIterator should
- throw kODErrIteratorNotInitialized
- <2> 4/27/95 JBS 1209506 $5 comments eliminated
- <1> 6/29/94 JBS first checked in
- <0> 6/28/94 SV SOMverted
- */
-
- #define ODFrameFacetIterator_Class_Source
-
- #ifndef SOM_ODFrameFacetIterator_xih
- #define VARIABLE_MACROS
- #include <FrFaItr.xih>
- #endif
-
- #ifndef _EXCEPT_
- #include <Except.h>
- #endif
-
- #ifndef _ODMEMORY_
- #include <ODMemory.h>
- #endif
-
- #ifndef _ODTYPES_
- #include <ODTypes.h>
- #endif
-
- #ifndef _ORDCOLL_
- #include <OrdColl.h>
- #endif
-
- #ifndef SOM_ODFrame_xh
- #include <Frame.xh>
- #endif
-
- #pragma segment ODFrFaItr
-
- SOM_Scope void SOMLINK ODFrameFacetIteratorsomUninit(ODFrameFacetIterator *somSelf)
- {
- ODFrameFacetIteratorData *somThis = ODFrameFacetIteratorGetData(somSelf);
- ODFrameFacetIteratorMethodDebug("ODFrameFacetIterator","somUninit");
-
- delete _fIter;
-
- ODFrameFacetIterator_parents_somUninit(somSelf);
-
- }
-
- SOM_Scope void SOMLINK ODFrameFacetIteratorInitFrameFacetIterator(ODFrameFacetIterator *somSelf, Environment *ev,
- ODFrame* frame)
- {
- ODFrameFacetIteratorData *somThis = ODFrameFacetIteratorGetData(somSelf);
- ODFrameFacetIteratorMethodDebug("ODFrameFacetIterator","InitFrameFacetIterator");
-
- SOM_TRY
- ASSERT(frame, kODErrIllegalNullFrameInput);
-
- /* Moved from somInit. SOM itself sets fields to zero
- _fFrame = kODNULL;
- _fIter = kODNULL;
- */
- somSelf->InitObject(ev);
-
- _fFrame = frame;
- SOM_CATCH_ALL
- SOM_ENDTRY
- }
-
- SOM_Scope ODFacet* SOMLINK ODFrameFacetIteratorFirst(ODFrameFacetIterator *somSelf, Environment *ev)
- {
- ODFrameFacetIteratorData *somThis = ODFrameFacetIteratorGetData(somSelf);
- ODFrameFacetIteratorMethodDebug("ODFrameFacetIterator","First");
-
- SOM_TRY
- if ( !_fIter )
- _fIter = new OrderedCollectionIterator(_fFrame->GetFacets(ev));
- THROW_IF_NULL(_fIter);
-
- return (ODFacet*) _fIter->First();
- SOM_CATCH_ALL
- SOM_ENDTRY
- return kODNULL;
- }
-
- SOM_Scope ODFacet* SOMLINK ODFrameFacetIteratorNext(ODFrameFacetIterator *somSelf, Environment *ev)
- {
- ODFrameFacetIteratorData *somThis = ODFrameFacetIteratorGetData(somSelf);
- ODFrameFacetIteratorMethodDebug("ODFrameFacetIterator","Next");
-
- SOM_TRY
- if ( !_fIter )
- THROW(kODErrIteratorNotInitialized);
-
- return (ODFacet*) _fIter->Next();
- SOM_CATCH_ALL
- SOM_ENDTRY
- return kODNULL;
- }
-
- SOM_Scope ODBoolean SOMLINK ODFrameFacetIteratorIsNotComplete(ODFrameFacetIterator *somSelf, Environment *ev)
- {
- ODFrameFacetIteratorData *somThis = ODFrameFacetIteratorGetData(somSelf);
- ODFrameFacetIteratorMethodDebug("ODFrameFacetIterator","IsNotComplete");
-
- SOM_TRY
- if ( !_fIter )
- THROW(kODErrIteratorNotInitialized);
-
- return _fIter->IsNotComplete();
- SOM_CATCH_ALL
- SOM_ENDTRY
- return kODNULL;
- }
-